1. Field of the Invention
Embodiments of the present invention generally relate to management of Small Computer System Interface (SCSI) based host bus adapters (HBAs) or HBAs that present a SCSI interface.
2. Description of the Related Art
Conventional SCSI-based HBAs are managed using a vendor-specific mechanism provided by the HBA vendor. Therefore, SCSI-based HBAs do not have standardized interfaces that may be used to access management features across different operating systems.
FIG. 1A illustrates a prior art conceptual diagram of the communication layers used to perform HBA management. A storage management application 100 issues commands to one or more HBAs produced by different vendors, e.g., HBA 105 and HBA 106 to perform management operations. In order to issue commands to HBA 105, storage management application 100 communicates through a vendor-specific software component 101 and HBA device driver 103 that are provided by the vendor of HBA 105. Likewise, in order to issue commands to HBA 105, storage management application 100 communicates through a vendor-specific software component 102 and HBA device driver 104 that are provided by the vendor of HBA 106.
FIG. 1B illustrates a prior art flow diagram of an exemplary method for performing conventional HBA management. In step 110 storage management application 100 accesses a first HBA driver in a vendor-specific manner. Storage management application 100 may use an applications programming interface (API) call provided by vendor specific software, such as an API library. In step 120 vendor-specific HBA device driver 103 communicates with HBA 105 to provide the command specified by the API call to HBA 105 for execution. In step 125 HBA device driver 103 determines if HBA 105 has completed execution of the command, and, if not, step 125 is repeated.
If, in step 125 HBA device driver 103 determines that HBA 105 has completed execution of the command, then HBA device driver 103 provides that information to storage management application 100 via vendor specific software 101, and in step 130 storage management application 100 determines if another HBA, provided by a different vendor should receive a vendor specific command corresponding to the command received by HBA 105. If, in step 130 storage management application 100 determines that another HBA should receive the command, then storage management application 100 returns to step 110 and repeats step 110, 120, and 125, using vendor specific software 102 and vendor specific HBA device driver 104 to access HBA 106. If, in step 130 storage management application 100 determines that another HBA should not receive the command, then in step 135 command execution is complete.
Because there is not a standard communication method defined for HBA devices, storage management application 100 uses vendor specific software 101 and 102 to communicate with HBA 105 and 106, respectively. When storage management application 100 needs to send the same command to each HBA, the command is sent separately, using each vendor-specific manner rather than sending a single command to all of the HBAs in the system simultaneously. Accordingly, it is desirable to access HBA management features for HBAs produced by different vendors using a standard interface.